package com.baizhi.overidex;

public class SuperDemo {
    public static void main(String[] args) {
        // m这个方法是A类中的方法， B类的对象为什么能调用A
        // 在B中一定存在一个A的引用
        B b = new B();
       // b.m();
    }
}

class A{

    //A的构造方法
    public A(){
        System.out.println("A()");
    }

    public A(int i){}

    public void m(){
        System.out.println("A");
    }
}

class B extends A{

    //B中一定是调用了A的构造函数
    public B(){
        //super(); //编译器默认提供的，super() 就是在调用父类的无参构造

        //调用父类的构造方法，在创建子类对象之前，会先创建一个父类的对象，所以supper() 只能放在构造方法第一行
        //super(5);
        System.out.println("B()");

    }

    @Override
    public void m(){
        System.out.println("B");
        super.m(); //调用了父类的方法
    }

}
